package cl.pds.pruebacliente;

import java.io.IOException;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class Pestana3 extends Activity {
	private String URL = "http://172.22.204.151:8080/PDSPrueba1WS/services/Prueba1PdsORMWS";
	private String NAMESPACE = "http://ws.pds.prueba1";
	private TextView txtResultadoServicio;
	
	public void onCreate(Bundle savedInstanceState){
		super.onCreate(savedInstanceState);
		setContentView(R.layout.pestana3);
		txtResultadoServicio = (TextView) findViewById(R.id.txtResultadoP3);
	}
	
	
	
	
    public void obtenerAtenciones(View v){
    	txtResultadoServicio.setText("");
    	new ObtenerAtencionesBackground().execute();
    }
    
    /**
     * @param v
     */
   

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
    
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.BuscarRUTFecha:
            	Intent intent = new Intent(Pestana3.this, Pestana2.class);
            	startActivity(intent);
            	return true;
            default:
                return true;
        }
    }

	
    class ObtenerAtencionesBackground extends AsyncTask<Void, Void, String>{
    	
    	private ProgressDialog progressDialog;

		@Override
		protected void onPreExecute() {
    		progressDialog = ProgressDialog.show(
    				Pestana3.this,
    				"Atenciones de Pacientes", 
    				"Espere mientras se carga la atenciones...", 
    				true);
			super.onPreExecute();
		}

		@Override
		protected String doInBackground(Void... params) {

			String resultadoJSON="";
	    	String METHOD_NAME = "getCartelera";
	    	String SOAP_ACTION = NAMESPACE +"/" +METHOD_NAME;
			SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
			SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
			soapEnvelope.dotNet = true;
			soapEnvelope.implicitTypes =true;
			soapEnvelope.setOutputSoapObject(request);

			HttpTransportSE aht = new HttpTransportSE(URL);
			Log.d("Cliente SOAP", "Iniciando Consulta");
			try {
				aht.call(SOAP_ACTION, soapEnvelope);
				SoapPrimitive resultString = (SoapPrimitive)soapEnvelope.getResponse();
				resultadoJSON = resultString.toString();
				Log.d("Cliente SOAP", "Finalizando Consulta");
				
				
			} catch (IOException e) {
				e.printStackTrace();
			} catch (XmlPullParserException e) {
				e.printStackTrace();
			}
	    
			return resultadoJSON;
		}

		@Override
		protected void onPostExecute(String result) {
			super.onPostExecute(result);
			progressDialog.dismiss();
			if("".equals(result)){
				Toast.makeText(Pestana3.this, "Error al obtener la informacion necesaria", Toast.LENGTH_LONG).show();
			}else{
				try {
					String texto = "";
					JSONObject resultado = new JSONObject(result);
					texto += resultado.getString("Titulo") +"\n";
					String contenido = resultado.getString("Contenido");
					Log.d("ClienteSoap", contenido);
					JSONArray AtencionesJSONArray = new JSONArray(contenido);
					int cantPeliculas = AtencionesJSONArray.length();
					for(int i = 0; i< cantPeliculas; i ++){
						texto += AtencionesJSONArray.getJSONObject(i).getString("Fecha") +"\n";
						texto += AtencionesJSONArray.getJSONObject(i).getString("Diagnostico") +"\n";
						texto += AtencionesJSONArray.getJSONObject(i).getString("Paciente") +"\n";
						texto += AtencionesJSONArray.getJSONObject(i).getString("Prestacion") +"\n";
						texto += "\n";
					}
					txtResultadoServicio.setText(texto);
				} catch (JSONException e) {
					Toast.makeText(Pestana3.this, "Error al obtener la informacion necesaria", Toast.LENGTH_LONG).show();
				}
			}
		}
    }
	

}
